package com.javarush.test.level09.lesson11.home05;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.io.IOException;
import java.util.ArrayList;

/* Гласные и согласные буквы
Написать программу, которая вводит с клавиатуры строку текста.
Программа должна вывести на экран две строки:
1. первая строка содержит только гласные буквы
2. вторая - только согласные буквы и знаки препинания из введённой строки.
Буквы соединять пробелом.

Пример ввода:
Мама мыла раму.
Пример вывода:
а а ы а а у
М м м л р м .
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //Написать тут ваш код
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        System.out.println(ripVowels(s));
        System.out.println(ripConsonantsAndOther(s));
    }


    public static char[] vowels = new char[]{'а', 'я', 'у', 'ю', 'и', 'ы', 'э', 'е', 'о', 'ё'};
    public static char[] allsymbols = new char[]{'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я'};

    public static char[] puncts = {'.', ',', '?', '!', ':', ';', '-', '(', ')', '\"'};






    //метод проверяет, гласная ли буква
    public static boolean isVowel(char c)
    {
        c = Character.toLowerCase(c);  //приводим символ в нижний регистр - от заглавных к строчным буквам

        for (char d : vowels)   //ищем среди массива гласных
        {
            if (c == d)
                return true;
        }
        return false;
    }

    public static char[] getConsonants()
    {
        ArrayList<Character> list = new ArrayList<Character>();
        for (char c : allsymbols)
        {
            boolean isf = false;
            for (char d : vowels)
            {
                if (c == d)
                    isf = true;
            }
            if (!isf)
                list.add(c);
        }

        char[] res = new char[list.size()];

        for (int i = 0; i < res.length; ++i)
            res[i] = list.get(i);

        return res;
    }

    public static boolean isConsonantOrPunct(char c)
    {
        c = Character.toLowerCase(c);  //приводим символ в нижний регистр - от заглавных к строчным буквам

        char[] consonants = getConsonants();
        char[] consonantsAndPuncts = new char[consonants.length + puncts.length];
        int k = 0;
        for (int i = 0; i < consonants.length; ++i)
            consonantsAndPuncts[k++] = consonants[i];
        for (int i = 0; i < puncts.length; ++i)
            consonantsAndPuncts[k++] = puncts[i];

        for (char d : consonantsAndPuncts)   //ищем среди массива гласных
        {
            if (c == d)
                return true;
        }

        return false;
    }

    public static String ripVowels(String s)
    {
        String out = "";
        for (int i = 0; i < s.length(); ++i)
        {
            if (isVowel(s.charAt(i)))
            {
                out += s.charAt(i);
                if (i < (s.length() - 1))
                    out += ' ';
            }
        }
        return out;
    }

    public static String ripConsonantsAndOther(String s)
    {
        String out = "";
        for (int i = 0; i < s.length(); ++i)
        {
            if (isConsonantOrPunct(s.charAt(i)))
            {
                out += s.charAt(i);
                if (i < (s.length() - 1))
                    out += ' ';
            }
        }
        return out;
    }
}
